<%--
    Document   : viewTrainingplan
    Created on : 14.02.2011, 14:30:55
    Author     : felix
--%>

<%
    // Encoding setzen
    request.setCharacterEncoding("UTF-8");

    // Wenn Parameter hidden übergeben wurde
    if(request.getParameterMap().containsKey("hidden")){

        // Alle Elemente des Trainingsplans laden
        String[][] baskets = db.baskets.getAllBasketsBySessionIdOrdered(session.getId());

        // Wenn Parameter name, date, id nicht leer sind und baskets mindestens 1 Element enthält
        if(!request.getParameter("name").equals("") && !request.getParameter("date").equals("") && !request.getParameter("id").equals("") && baskets.length > 0)
        {
            // Aktualisiere Trainingsplan
            db.trainingplans.updateTrainingsplan(request.getParameter("id"), request.getParameter("name").toString(), request.getParameter("date").toString());

            // Lösche alte Verknüpfungen von Trainingsplan und dessen Übungen
            db.trainingplanexercises.deleteTrainingsplanexercises(request.getParameter("id"));

            // Ausgewählte Übungen laden
            String[][] selectedExercises = db.baskets.getAllBasketsBySessionIdOrdered(session.getId());

            // Neue Verknüpfungen von Trainingsplan und dessen Übungen speichern
            db.trainingplanexercises.createTrainingsplanexercises(selectedExercises, request.getParameter("id"));

            // Ausgewählte Übungen aus temporärer Tabelle löschen
            db.baskets.clearBasketBySessionId(session.getId());

            // Erfolgsmeldung setzen
            session.setAttribute("flash", "Trainingsplan gespeichert");
            session.setAttribute("flash_color", "green");

            // Seite umleiten
            getServletContext().getRequestDispatcher("/viewAllTrainingplans.jsp").forward(request, response);
        } else {
            if(request.getParameter("name").equals("")){
                // Fehlermeldung setzen
                session.setAttribute("flash", "Bezeichnung fehlerhaft");
                session.setAttribute("flash_color", "red");
            } else if(request.getParameter("date").equals("")){
                // Fehlermeldung setzen
                session.setAttribute("flash", "Datum fehlerhaft");
                session.setAttribute("flash_color", "red");
            } else if(!(baskets.length > 0)){
                // Fehlermeldung setzen
                session.setAttribute("flash", "Keine Übungen ausgewählt");
                session.setAttribute("flash_color", "red");
            } else {
                // Fehlermeldung setzen
                session.setAttribute("flash", "Trainingsplan wurde nicht gespeichert");
                session.setAttribute("flash_color", "red");
            }
        }
    } 

    // Alle temporären Übungen der Session laden
    String[][] allBaskets = db.baskets.getAllBasketsBySessionIdOrdered(session.getId());

    // Wenn Parameter id nicht null ist und allBaskets keine Elemente enthält
    if(request.getParameter("id") != null && (allBaskets.length == 0)){
        // Lade alle Übungen für einen Trainingsplan
        String[][] trainingplanexercises = db.trainingplanexercises.getTraingplanExercisesByTrainingplanId(request.getParameter("id"));

        // Für jede Übung des Trainingsplan
        for(String[] trainingplanexercise: trainingplanexercises){
            // Lade Details der Übung
            String[] exerciseDetails = db.exercises.getExerciseDetailsByExerciseId(trainingplanexercise[0]);

            // Schreibe Session und ÜbungsID und Übungsdauer in temporäre Tabelle
            db.baskets.createBasket(trainingplanexercise[0], exerciseDetails[8], session.getId());
        }
    }
%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ include file="header.jsp" %>

<%@ page import="java.util.*" %>

<div id="contents">
    <h1>Trainingsplan bearbeiten</h1>
    <form action="viewTrainingplan.jsp" method="post">
        <fieldset>
            <legend>Trainingsplan</legend>
            <input type="hidden" name="hidden" value="1"/>
             <br/>
            <label>Bezeichnung*</label>
            <br/>
            <!-- value anhand der TrainingsplanID auslesen-->
            <input name="name" type="text" maglength="200" value="<% out.print(db.trainingplans.getName(request.getParameter("id"))); %>"/>

            <br/><br/>

            <label>Datum*</label>
            <br/>
            <!-- value anhand der TrainingsplanID auslesen-->
            <input type="hidden" id="id" name="id" value="<% out.print(request.getParameter("id"));%>">

            <!-- Kalender vorbereiten-->
            <input type="hidden" id="DPC_TODAY_TEXT" value="Heute">
            <input type="hidden" id="DPC_BUTTON_TITLE" value="Öffne Kalender...">
            <input type="hidden" id="DPC_MONTH_NAMES" value="['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']">
            <input type="hidden" id="DPC_DAY_NAMES" value="['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa']">
            <!-- Kalender anzeigen-->
            <input type="text" name="date" maxlength="10" id="date" datepicker_format="YYYY-MM-DD" datepicker="true" readonly value="<% out.print(db.trainingplans.getDate(request.getParameter("id"))); %>"/>

            <br/><br/>

            <label>Übungen*</label>
            <br/>

            <!-- Übungsauswahl einbinden-->
            <%@ include file="exerciseSelection.jsp" %>
            
            <br/><br/>
            * Pflichtfeld
            <br/><br/>

            <input type="submit" value="Trainingsplan speichern" />

        </fieldset>
    </form>
</div>

<%@ include file="footer.jsp" %>
